package siac.com.util;

import java.util.Calendar;

public final class PeriodoDate {

	private final Calendar inicio;
	private final Calendar fim;

	public PeriodoDate(Calendar inicio, Calendar fim) {
		this((Calendar) inicio.clone(), (Calendar) fim.clone(), false);
	}

	private PeriodoDate(Calendar inicio, Calendar fim, boolean nada) { 
		this.inicio = inicio;
		this.fim = fim;
	}

	public Calendar getInicio() {
		// copia defensiva
		return (Calendar) inicio.clone();
	}

	public Calendar getFim() {
		// copia defensiva
		return (Calendar) fim.clone();
	}

	public PeriodoDate adiaUmaSemana() {
		Calendar novoFim = (Calendar) this.fim.clone();
		novoFim.add(Calendar.DAY_OF_MONTH, 7);
		return new PeriodoDate(this.inicio, novoFim, true); // flyweight
	}
}